#ifndef CHAT_HH_
# define CHAT_HH_


/** Embedded Chat constants
 */


// NOTE: *WARNING* non ASCII chars
// NOTE: *WARNING* system dependent chars

// NOTE: could use a #ifdef UNIX


# define KEY_DEFAULT_CHAT_HIGHLIGHT // C-' '

# define KEY_DEFAULT_CHAT_CUT
# define KEY_DEFAULT_CHAT_COPY /// add in circular buffer
# define KEY_DEFAULT_CHAT_PASTE /// allow to browse circular buffer
# define KEY_DEFAULT_CHAT_BROWSE_BY_WORD // Ctrl-Arrow equivalent

/** change current word case (upper-case, lower-case, capitalize)
 ** moves cursor
 */
# define KEY_DEFAULT_CHAT_UPPERCASE			'u'
# define KEY_DEFAULT_CHAT_LOWERCASE			'l'
# define KEY_DEFAULT_CHAT_CAPITALISE		'c'

/// rm current word
# define KEY_DEFAULT_CHAT_DELETE_WORD		'd'


// cd use C-_
# define KEY_DEFAULT_CHAT_UNDO				''
# define KEY_DEFAULT_CHAT_REDO				''

# define KEY_DEFAULT_CHAT_BEGIN // HOME key
# define KEY_DEFAULT_CHAT_BEGIN2			''

# define KEY_DEFAULT_CHAT_END // END key
# define KEY_DEFAULT_CHAT_END2				''

# define KEY_DEFAULT_CHAT_PREVIOUS_ENTRY	'[B'
# define KEY_DEFAULT_CHAT_PREVIOUS_ENTRY2	''

# define KEY_DEFAULT_CHAT_NEXT_ENTRY		'[A'
# define KEY_DEFAULT_CHAT_NEXT_ENTRY2 // C-n

# define KEY_DEFAULT_CHAT_CLOSE			''
# define KEY_DEFAULT_CHAT_CLOSE2		''

# define KEY_DEFAULT_CHAT_SEND			'\n'
# define KEY_DEFAULT_CHAT_SEND2 // C-j





/// each char of this string is a separator
// NOTE: if you change CHAT_SEPARATOR_STRING,
//	 update STRLEN_CHAT_SEPARATOR_STRING
# define CHAT_SEPARATOR_STRING		" \n\t"
# define STRLEN_CHAT_SEPARATOR_STRING	3

# define CHAT_COMMAND_CHAR	'/'  // safety issue if configurable ?
# define CHAT_ESCAPE_CHAR	'\\' // safety issue if configurable ?

# define CHAT_DEFAULT_MAX_CIRCULAR_ENTRIES 16 // ~18 on GNU-Emacs

// 255: need room for cursor (cursor position is an unsigned char)
// && need room to add '\0' char
// we also could use a std::string
# define CHAT_MAX_ENTRY_LENGTH  255

// 4 lines of 64 chars, missing 1 char
# define CHAT_DEFAULT_LINE_LENGTH 64

// font command

enum e_chat_font
{
  CHAT_FONT_STD	=		0x0000, //!< CHAT_FONT_STD
  CHAT_FONT_BOLD =		0x0001, //!< CHAT_FONT_BOLD
  CHAT_FONT_ITALIC =	0x0002  //!< CHAT_FONT_ITALIC
};


enum e_chat_cursor_shape
{
  CHAT_CURSOR_SHAPE_BLOCK = 0, // auto increment
  CHAT_CURSOR_SHAPE_UNDERSCORE,

  CHAT_NB_CURSOR_SHAPE
};

# define CHAT_DEFAULT_CURSOR_SHAPE	CHAT_CURSOR_SHAPE_BLOCK

// device level (determines number of features)
# define CHAT_DEVICE_LEVEL


/// avoid flood effect
# define CHAT_MAX_LINEWRAPS			4
# define CHAT_DEFAULT_CURSOR_BLINK	0


// check Windows support (empty filename)
# define DEFAULT_PATH_ALIASES		"conf/.rods_aliases"


#endif /* !CHAT_HH_ */
